﻿using DingTalk.Api;
using DingTalk.Api.Request;
using DingTalk.Api.Response;
using DingTalk.Common;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Threading.Tasks;

namespace DingWebIService
{
    public interface IDingDALRepository
    {
        Task<OapiGettokenResponse> GetAccessToken(string appkey, string appsecret);
        OapiUserGetbyunionidResponse getUseridByUnionid(string unionid, string accesstoken);
        OapiV2UserGetbymobileResponse GetByMobile(string mobile, string accesstoken);
        OapiInactiveUserV2GetResponse GetUnlogin(string date, string accesstoken);
        OapiUserCreateResponse CreateUser(string accesstoken);
        OapiV2UserUpdateResponse UpdateUser(string accesstoken);
        OapiV2UserDeleteResponse DeleteUser(string userid, string accesstoken);
        OapiV2UserGetResponse GetUser(string userid, string accesstoken);
        OapiUserSimplelistResponse GetSimplelist(long departmentId, long size, string accesstoken);
        OapiV2DepartmentListsubResponse GetDepartment(int deptid, string accesstoken);
        OapiV2DepartmentListsubidResponse GetDepartmentById(int deptid, string accesstoken);
        OapiMessageCorpconversationAsyncsendV2Response MessageSend(string msg, int agentid, string useridlist, string accesstoken, bool toalluser = false);
        OapiMessageCorpconversationStatusBarUpdateResponse MessageUpdate(string statusvalue, int agentid, int TaskId, string accesstoken);
        OapiMessageCorpconversationRecallResponse MessageBack(int agentid, int msgtaskid, string accesstoken);
    }
}
